/******************************************************************************/
/* @ All Rights Reserved Copyright (C) 2014 broada,Ltd.                       */
/*                                                                            */
/*  NAME      = frreport_opt.h                                                */
/*  NOTE      =                                                               */
/*  DATE      = 2016/01/11 by yaohl                                           */
/******************************************************************************/

#ifndef __FRREPORT_OPT_H_
#define __FRREPORT_OPT_H_

#include "frreport_comm.h"

Frreport_type_l7data FrReportOpt_get_messageType(Frreport_data *p_st_report_data);

u_short FrReportOpt_get_l4proto(Frreport_data *p_st_report_data);
int FrReportOpt_get_l7proto(Frreport_data *p_st_report_data);
int FrReportOpt_set_l7proto(Frreport_data *p_st_report_data, int i_l7_proto);

u_int   FrReportOpt_get_srcIp(Frreport_data *p_st_report_data);
u_short FrReportOpt_get_srcPort(Frreport_data *p_st_report_data);
u_int   FrReportOpt_get_dstIp(Frreport_data *p_st_report_data);
u_short FrReportOpt_get_dstPort(Frreport_data *p_st_report_data);

int FrReportOpt_set_srcIp(Frreport_data *p_st_report_data, const char *p_src_ip);
int FrReportOpt_set_srcIp2(Frreport_data *p_st_report_data, u_int ui_src_ip);
int FrReportOpt_set_srcPort(Frreport_data *p_st_report_data, u_short u_port);
int FrReportOpt_set_dstIp(Frreport_data *p_st_report_data, const char *p_dst_ip);
int FrReportOpt_set_dstIp2(Frreport_data *p_st_report_data, u_int ui_dst_ip);
int FrReportOpt_set_dstPort(Frreport_data *p_st_report_data, u_short u_port);

int FrReportOpt_get_fieldSize(Frreport_data *p_st_report_data, const char *p_key);
int FrReportOpt_get_existsField(Frreport_data *p_st_report_data, const char *p_key);
Frvar_field *FrReportOpt_get_field(Frreport_data *p_st_report_data, const char *p_key, int i_index);

int FrReportOpt_add_fieldStr(Frreport_data *p_st_report_data, const char *p_key, const char *p_value);
int FrReportOpt_add_fieldLong(Frreport_data *p_st_report_data, const char *p_key, long l_value);
int FrReportOpt_add_fieldDouble(Frreport_data *p_st_report_data, const char *p_key, double d_value);
int FrReportOpt_del_fieldAll(Frreport_data *p_st_report_data, const char *p_key);
int FrReportOpt_del_fieldIndex(Frreport_data *p_st_report_data, const char *p_key, int i_index);

char* FrReportOpt_dumpField(Frreport_data *p_st_report_data, int i_flag_style);

#endif
